package com.monkeyboy.array;

/**
 * 题目：在一个字符串中找到第一个只出现一次的字符，并返回它的位置。字符串只包含 ASCII 码字符。
 * Input: abacc
 * Output: b
 *
 * 解题思路：ASCII 码只有 128 个字符，因此可以使用长度为 128 的整型数组来存储每个字符出现的次数。
 * @Author Gavin
 * @date 2021.03.30 10:48
 */
public class FirstRepeat {
    public String getFirstStr(String str){
        int[] cnts=new int[128];
        for (int i = 0; i < str.length(); i++) {
            System.out.println((int)str.charAt(i));
            cnts[str.charAt(i)]++;
        }
        //注意这里是循环str而不是cnts数组，因为题目要求第一个出现
        for (int i = 0; i < str.length(); i++) {
            if(cnts[str.charAt(i)]==1){
                return String.valueOf(str.charAt(i));
            }
        }
        return "";
    }
    public static void main(String[] args) {
        FirstRepeat firstRepeat=new FirstRepeat();
        System.out.println(firstRepeat.getFirstStr("aabccz"));
    }
}
